/*
 * Esse arquivo é parte do Software de Segurança do LaPEC
 * 
 * Copyright (C) 2012-$AnoCorrente$ Dyego Ítallo Silva Ferreira
 * Copyright (C) 2012-$AnoCorrente$ Eduardo Moreira Barbosa
 * Copyright (C) 2012-$AnoCorrente$ João dos Santos Gonçalves
 * 
 * LaPEC é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 * de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 * conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 * na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 * 
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 * se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  USA
 * 
 * Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 * contato nos e-mails <dyegoitallo@gmail.com>, <barbosa.edrd@gmail.com>, <john.jsg@hotmail.com>.
 */

package gui;

import dao.mysql.BancoDeDadosMySQL;

/**
 * Interface gráfica do menu principal
 * @author Dyego Ítallo Silva Ferreira
 */
public class GUIMenuPrincipal extends javax.swing.JFrame {

    
    // ===============================================================================
    // Variáveis Globais
    // ===============================================================================
    private JInternalFrameSobre    jInternalFrameSobre;
    private JInternalFrameCadastro jInternalFrameCadastro;
    private JInternalFrameListar   jInternalFrameListar;
    private JInternalFrameLicensa  jInternalFrameLicensa;
    private JInternalFrameContato  jInternalFrameContato;
    
    // ===============================================================================
    // Construtor
    // ===============================================================================
    public GUIMenuPrincipal() {
        initComponents();
    }
    
    // ===============================================================================
    // Código gerado automáticamente
    // ===============================================================================
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jDesktopPaneMenuPrincipal = new javax.swing.JDesktopPane();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenuArquivo = new javax.swing.JMenu();
        jMenuItemCadastrar = new javax.swing.JMenuItem();
        jMenuItemListar = new javax.swing.JMenuItem();
        jMenuItemAlterarDados = new javax.swing.JMenuItem();
        jMenuItemConfiguracoes = new javax.swing.JMenuItem();
        jMenuItemSair = new javax.swing.JMenuItem();
        jMenuRelatorios = new javax.swing.JMenu();
        jMenuItemAcessos = new javax.swing.JMenuItem();
        jMenuAjuda = new javax.swing.JMenu();
        jMenuItemSobre = new javax.swing.JMenuItem();
        jMenuItemLicensa = new javax.swing.JMenuItem();
        jMenuItemContato = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jDesktopPaneMenuPrincipal.setName("Sistema de Segurança do LaPEC"); // NOI18N

        jMenuArquivo.setText("Arquivo");

        jMenuItemCadastrar.setText("Cadastrar");
        jMenuItemCadastrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemCadastrarActionPerformed(evt);
            }
        });
        jMenuArquivo.add(jMenuItemCadastrar);

        jMenuItemListar.setText("Listar usuários");
        jMenuItemListar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemListarActionPerformed(evt);
            }
        });
        jMenuArquivo.add(jMenuItemListar);

        jMenuItemAlterarDados.setText("Alterar dados");
        jMenuArquivo.add(jMenuItemAlterarDados);

        jMenuItemConfiguracoes.setText("Configurações");
        jMenuItemConfiguracoes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemConfiguracoesActionPerformed(evt);
            }
        });
        jMenuArquivo.add(jMenuItemConfiguracoes);

        jMenuItemSair.setText("Sair");
        jMenuArquivo.add(jMenuItemSair);

        jMenuBar1.add(jMenuArquivo);

        jMenuRelatorios.setText("Relatórios");

        jMenuItemAcessos.setText("Acessos");
        jMenuRelatorios.add(jMenuItemAcessos);

        jMenuBar1.add(jMenuRelatorios);

        jMenuAjuda.setText("Ajuda");

        jMenuItemSobre.setText("Sobre");
        jMenuItemSobre.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemSobreActionPerformed(evt);
            }
        });
        jMenuAjuda.add(jMenuItemSobre);

        jMenuItemLicensa.setText("Licensa");
        jMenuItemLicensa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemLicensaActionPerformed(evt);
            }
        });
        jMenuAjuda.add(jMenuItemLicensa);

        jMenuItemContato.setText("Contato");
        jMenuItemContato.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemContatoActionPerformed(evt);
            }
        });
        jMenuAjuda.add(jMenuItemContato);

        jMenuBar1.add(jMenuAjuda);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jDesktopPaneMenuPrincipal, javax.swing.GroupLayout.DEFAULT_SIZE, 900, Short.MAX_VALUE)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jDesktopPaneMenuPrincipal, javax.swing.GroupLayout.DEFAULT_SIZE, 650, Short.MAX_VALUE)
                .addGap(0, 0, Short.MAX_VALUE))
        );

        jDesktopPaneMenuPrincipal.getAccessibleContext().setAccessibleName("desktopPane");

        pack();
    }// </editor-fold>//GEN-END:initComponents
    
    // ===============================================================================
    // Eventos
    // ===============================================================================
    private void jMenuItemSobreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSobreActionPerformed
        if ((jInternalFrameSobre == null) || (!jInternalFrameSobre.isVisible())) {
            jInternalFrameSobre = new JInternalFrameSobre();
            jDesktopPaneMenuPrincipal.add(jInternalFrameSobre);
            jInternalFrameSobre.setPosicao();
            jInternalFrameSobre.setVisible(true);
        }
    }//GEN-LAST:event_jMenuItemSobreActionPerformed

    private void jMenuItemCadastrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemCadastrarActionPerformed
        if ((jInternalFrameCadastro == null) || (!jInternalFrameCadastro.isVisible())) {
            jInternalFrameCadastro = new JInternalFrameCadastro();
            jDesktopPaneMenuPrincipal.add(jInternalFrameCadastro);
            jInternalFrameCadastro.setPosicao();
            jInternalFrameCadastro.setVisible(true);
        }
    }//GEN-LAST:event_jMenuItemCadastrarActionPerformed

    private void jMenuItemListarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemListarActionPerformed
        if ((jInternalFrameListar == null) || (!jInternalFrameListar.isVisible())) {
            jInternalFrameListar = new JInternalFrameListar();
            jDesktopPaneMenuPrincipal.add(jInternalFrameListar);
            jInternalFrameListar.setPosicao();
            jInternalFrameListar.setVisible(true);
        }
    }//GEN-LAST:event_jMenuItemListarActionPerformed

    private void jMenuItemConfiguracoesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemConfiguracoesActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItemConfiguracoesActionPerformed

    private void jMenuItemLicensaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemLicensaActionPerformed
        if ((jInternalFrameLicensa == null) || (!jInternalFrameLicensa.isVisible())) {
            jInternalFrameLicensa = new JInternalFrameLicensa();
            jDesktopPaneMenuPrincipal.add(jInternalFrameLicensa);
            jInternalFrameLicensa.setPosicao();
            jInternalFrameLicensa.setVisible(true);
        }
    }//GEN-LAST:event_jMenuItemLicensaActionPerformed

    private void jMenuItemContatoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemContatoActionPerformed
        if ((jInternalFrameContato == null) || (!jInternalFrameContato.isVisible())) {
            jInternalFrameContato = new JInternalFrameContato();
            jDesktopPaneMenuPrincipal.add(jInternalFrameContato);
            jInternalFrameContato.setPosicao();
            jInternalFrameContato.setVisible(true);
        }
    }//GEN-LAST:event_jMenuItemContatoActionPerformed

    // ===============================================================================
    // Programa principal - usando o GTK+
    // ===============================================================================
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("GTK+".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(GUIMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(GUIMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(GUIMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(GUIMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                // Verifica se o banco existe se não existe cria
                BancoDeDadosMySQL bd = new BancoDeDadosMySQL();
                bd.conectarLocal();
                bd.criarBanco();
                bd.conectarBanco();
                bd.adicionarTabelaUsuarios();
                bd.adicionarTabelaBiometrias();
                new GUIMenuPrincipal().setVisible(true);
            }
        });
    }
    
    // ===============================================================================
    // Variáveis geradas automáticamente
    // ===============================================================================
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JDesktopPane jDesktopPaneMenuPrincipal;
    private javax.swing.JMenu jMenuAjuda;
    private javax.swing.JMenu jMenuArquivo;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItemAcessos;
    private javax.swing.JMenuItem jMenuItemAlterarDados;
    private javax.swing.JMenuItem jMenuItemCadastrar;
    private javax.swing.JMenuItem jMenuItemConfiguracoes;
    private javax.swing.JMenuItem jMenuItemContato;
    private javax.swing.JMenuItem jMenuItemLicensa;
    private javax.swing.JMenuItem jMenuItemListar;
    private javax.swing.JMenuItem jMenuItemSair;
    private javax.swing.JMenuItem jMenuItemSobre;
    private javax.swing.JMenu jMenuRelatorios;
    // End of variables declaration//GEN-END:variables
}
